package com.uzai.console.service.pyq;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.pyq.pyqjobdetail.*;
import com.uzai.console.entity.PyqJob;
import com.uzai.console.entity.es.PyqJobDetail;
import com.uzai.console.vo.pyq.pyqjobdetail.PyqJobDetailVo;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 朋友圈发送明细
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface PyqJobDetailService {

    /**
     * 查询朋友圈发送明细列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param query
     * @return null
     */
    Page<PyqJobDetailVo> findPyqJobDetailList(PyqJobDetailQuery query);

    /**
     * 查询朋友圈发送明细详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailIdDto
     * @return null
     */
    PyqJobDetailVo findPyqJobDetail(PyqJobDetailIdDto pyqJobDetailIdDto);

    /**
     * 再发一次
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailIdDto
     * @return null
     */
    void sendBegin(PyqJobDetailIdDto pyqJobDetailIdDto);

    /**
     * 立即发送
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailIdDto
     * @return null
     */
    void sendNow(PyqJobDetailIdDto pyqJobDetailIdDto);

    /**
     * 删除微信朋友圈-不删明细
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailDeleteDto
     * @return null
     */
    void deleteWxPyq(PyqJobDetailDeleteDto pyqJobDetailDeleteDto);

    /**
     * 停止发送
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailIdDto
     * @return null
     */
    void stopPyqJobDetail(PyqJobDetailIdDto pyqJobDetailIdDto);

    /**
     * 异步发送朋友圈
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param pyqJob
     * @param middlePageDomainId 中间页域名id
     * @return null
     */
    PyqJobDetail sendPyqJobDetailSync(PyqJob pyqJob, Long deviceUniqueId, Long middlePageDomainId);

    /**
     * 批量再发一次
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailIdListDto
     * @return null
     */
    void batchSendBegin(PyqJobDetailIdListDto pyqJobDetailIdListDto);

    /**
     * 删除微信朋友圈-不删明细
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailDeleteListDto
     * @return null
     */
    void batchDeleteWxPyq(PyqJobDetailDeleteListDto pyqJobDetailDeleteListDto);

    /**
     * 查询朋友圈发送数量
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param query
     * @return null
     */
    int findPyqJobDetailCount(PyqJobDetailQuery query);


    /**
     * 批量删除朋友圈明细
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqJobDetailIdListDto
     * @return null
     */
    void batchDeleteById(PyqJobDetailIdListDto pyqJobDetailIdListDto);

}
